文章目录29.两数相除:样例1:样例2:提示:分析:题解:rustgoc++cpythonjava29.两数相除:给定两个整数,被除数dividend和除数divisor。将两数相除,要求不使用乘法、除法和mod运算符。返回被除数dividend除以除数divisor得到的商。整数除法的结果应当截去(truncate)其小数部分,例如:truncate(8.345)=8以及truncate(-2.7335)=-2样例1:输入: dividend=10,divisor=3 输出: 3 解释: 10/3=truncate(3.33333..)=truncate(3)=3样例2:输入: divide
某一问题有很多重叠子问题每一状态一定由上一状态推导出来而贪心没有状态推导,而是直接选局部最优解决方式:确定dp数组(dptable)以及下标的含义确定递推公式dp数组如何初始化确定遍历顺序举例推导dp数组模拟:举例推导dp数组检查:打印dp数组1.Leetcode509.斐波那契数classSolution{public:intfib(intn){//第i个数的值vectornum(n+2,0);//初始化num[0]=0;num[1]=1;//确定遍历顺序for(inti=2;i递归写法classSolution{public:intfib(intn){if(n2.Leetcode70.爬楼
某一问题有很多重叠子问题每一状态一定由上一状态推导出来而贪心没有状态推导,而是直接选局部最优解决方式:确定dp数组(dptable)以及下标的含义确定递推公式dp数组如何初始化确定遍历顺序举例推导dp数组模拟:举例推导dp数组检查:打印dp数组1.Leetcode509.斐波那契数classSolution{public:intfib(intn){//第i个数的值vectornum(n+2,0);//初始化num[0]=0;num[1]=1;//确定遍历顺序for(inti=2;i递归写法classSolution{public:intfib(intn){if(n2.Leetcode70.爬楼
目录155.最小栈思路解析20.有效的括号思路解析1047.删除字符串中的所有相邻重复项思路解析1209.删除字符串中的所有相邻重复项II思路解析删除字符串中出现次数>=2次的相邻字符剑指Offer09.用两个栈实现队列239.滑动窗口最大值思路解析155.最小栈设计一个支持push,pop,top操作,并能在常数时间内检索到最小元素的栈。实现MinStack类:MinStack()初始化堆栈对象。voidpush(intval)将元素val推入堆栈。voidpop()删除堆栈顶部的元素。inttop()获取堆栈顶部的元素。intgetMin()获取堆栈中的最小元素。提示:\(-2^{31}\
目录155.最小栈思路解析20.有效的括号思路解析1047.删除字符串中的所有相邻重复项思路解析1209.删除字符串中的所有相邻重复项II思路解析删除字符串中出现次数>=2次的相邻字符剑指Offer09.用两个栈实现队列239.滑动窗口最大值思路解析155.最小栈设计一个支持push,pop,top操作,并能在常数时间内检索到最小元素的栈。实现MinStack类:MinStack()初始化堆栈对象。voidpush(intval)将元素val推入堆栈。voidpop()删除堆栈顶部的元素。inttop()获取堆栈顶部的元素。intgetMin()获取堆栈中的最小元素。提示:\(-2^{31}\
目录155.最小栈思路解析20.有效的括号思路解析1047.删除字符串中的所有相邻重复项思路解析1209.删除字符串中的所有相邻重复项II思路解析删除字符串中出现次数>=2次的相邻字符剑指Offer09.用两个栈实现队列239.滑动窗口最大值思路解析155.最小栈设计一个支持push,pop,top操作,并能在常数时间内检索到最小元素的栈。实现MinStack类:MinStack()初始化堆栈对象。voidpush(intval)将元素val推入堆栈。voidpop()删除堆栈顶部的元素。inttop()获取堆栈顶部的元素。intgetMin()获取堆栈中的最小元素。提示:\(-2^{31}\
目录155.最小栈思路解析20.有效的括号思路解析1047.删除字符串中的所有相邻重复项思路解析1209.删除字符串中的所有相邻重复项II思路解析删除字符串中出现次数>=2次的相邻字符剑指Offer09.用两个栈实现队列239.滑动窗口最大值思路解析155.最小栈设计一个支持push,pop,top操作,并能在常数时间内检索到最小元素的栈。实现MinStack类:MinStack()初始化堆栈对象。voidpush(intval)将元素val推入堆栈。voidpop()删除堆栈顶部的元素。inttop()获取堆栈顶部的元素。intgetMin()获取堆栈中的最小元素。提示:\(-2^{31}\
一、题目大意给定一个二叉树的根节点root,请找出该二叉树的最底层最左边节点的值。假设二叉树中至少有一个节点。示例1:输入:root=[2,1,3]输出:1示例2:输入:[1,2,3,4,null,5,6,null,null,7]输出:7提示:二叉树的节点个数的范围是[1,104]-231来源:力扣(LeetCode)链接:https://leetcode.cn/problems/find-bottom-left-tree-value著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。二、解题思路求二叉树的最左下树节点的值,也就是最后一行左数第一个值,可以用先序遍历来做,维护一
一、题目大意给你一棵二叉树的根节点root,翻转这棵二叉树,并返回其根节点。示例1:输入:root=[4,2,7,1,3,6,9]输出:[4,7,2,9,6,3,1]示例2:输入:root=[2,1,3]输出:[2,3,1]示例3:输入:root=[]输出:[]提示:树中节点数目范围在[0,100]内-100来源:力扣(LeetCode)链接:https://leetcode.cn/problems/invert-binary-tree著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。二、解题思路翻转二叉树是树的基本操作之一,可以使用递归和非递归两种方法。递归方法:交换当前左
一、题目大意给你两棵二叉树root和subRoot。检验root中是否包含和subRoot具有相同结构和节点值的子树。如果存在,返回true;否则,返回false。二叉树tree的一棵子树包括tree的某个节点和这个节点的所有后代节点。tree也可以看做它自身的一棵子树。示例1:输入:root=[3,4,5,1,2],subRoot=[4,1,2]输出:true示例2:输入:root=[3,4,5,1,2,null,null,null,null,0],subRoot=[4,1,2]输出:false提示:root树上的节点数量范围是[1,2000]subRoot树上的节点数量范围是[1,1000